java method overriding solution